
// Areas
//
#define HUB_AREA_FIRST                   0

#define HUB_AREA_TOWN_SQUARE            (HUB_AREA_FIRST + 0)
#define HUB_AREA_ADVENTURE_ENTRANCE     (HUB_AREA_FIRST + 1)
#define HUB_AREA_LABS                   (HUB_AREA_FIRST + 2)
#define HUB_AREA_SAFARI_ZONE            (HUB_AREA_FIRST + 3)
#define HUB_AREA_CHALLENGE_FRONTIER     (HUB_AREA_FIRST + 4)
#define HUB_AREA_BERRY_FIELD            (HUB_AREA_FIRST + 5)
#define HUB_AREA_HOME                   (HUB_AREA_FIRST + 6)
#define HUB_AREA_MARTS                  (HUB_AREA_FIRST + 7)
#define HUB_AREA_RIDE_TRAINING          (HUB_AREA_FIRST + 8)
#define HUB_AREA_DAY_CARE               (HUB_AREA_FIRST + 9)
#define HUB_AREA_MARKET                 (HUB_AREA_FIRST + 10)

#define HUB_AREA_COUNT                  (HUB_AREA_MARKET + 1)

#define HUB_AREA_NONE 255

// Upgrades
//

#define HUB_UPGRADE_FIRST                               0

#define HUB_UPGRADE_TOWN_SQUARE_SCHOOL                  (HUB_UPGRADE_FIRST + 0)
#define HUB_UPGRADE_TOWN_SQUARE_TUTORS                  (HUB_UPGRADE_FIRST + 1)

#define HUB_UPGRADE_ADVENTURE_ENTRANCE_RANDOM_STARTER   (HUB_UPGRADE_FIRST + 2)
#define HUB_UPGRADE_ADVENTURE_ENTRANCE_ADVENTURE_REPLAY (HUB_UPGRADE_FIRST + 3)

#define HUB_UPGRADE_LAB_UNIQUE_MON_LAB                  (HUB_UPGRADE_FIRST + 4)
#define HUB_UPGRADE_LAB_UNIQUE_MON_SLOTS0               (HUB_UPGRADE_FIRST + 5)
#define HUB_UPGRADE_LAB_UNIQUE_MON_SLOTS1               (HUB_UPGRADE_FIRST + 6)
#define HUB_UPGRADE_LAB_UNIQUE_MON_RARITY_RARE          (HUB_UPGRADE_FIRST + 7)
#define HUB_UPGRADE_LAB_UNIQUE_MON_RARITY_EPIC          (HUB_UPGRADE_FIRST + 8)
#define HUB_UPGRADE_LAB_UNIQUE_MON_RARITY_EXOTIC        (HUB_UPGRADE_FIRST + 9)
#define HUB_UPGRADE_LAB_UNIQUE_MON_RARITY_LEGENDARY     (HUB_UPGRADE_FIRST + 10) // reserved not actually planned to be used

#define HUB_UPGRADE_HOME_LOWER_FLOOR                    (HUB_UPGRADE_FIRST + 11)
#define HUB_UPGRADE_HOME_UPPER_FLOOR                    (HUB_UPGRADE_FIRST + 12) // reserved not actually planned to be used
#define HUB_UPGRADE_HOME_EDIT_STYLE                     (HUB_UPGRADE_FIRST + 13)

#define HUB_UPGRADE_BERRY_FIELD_BREWING                 (HUB_UPGRADE_FIRST + 14)
#define HUB_UPGRADE_BERRY_FIELD_BREWING_UPGRADE         (HUB_UPGRADE_FIRST + 15) // resetved, not used yet
#define HUB_UPGRADE_BERRY_FIELD_EXTRA_FIELD0            (HUB_UPGRADE_FIRST + 16)
#define HUB_UPGRADE_BERRY_FIELD_EXTRA_FIELD1            (HUB_UPGRADE_FIRST + 17)
#define HUB_UPGRADE_BERRY_FIELD_EXTRA_FIELD2            (HUB_UPGRADE_FIRST + 18)
#define HUB_UPGRADE_BERRY_FIELD_HIGHER_YEILD0           (HUB_UPGRADE_FIRST + 19)
#define HUB_UPGRADE_BERRY_FIELD_HIGHER_YEILD1           (HUB_UPGRADE_FIRST + 20)
#define HUB_UPGRADE_BERRY_FIELD_HIGHER_YEILD2           (HUB_UPGRADE_FIRST + 21)

#define HUB_UPGRADE_SAFARI_ZONE_LEGENDS_CAVE            (HUB_UPGRADE_FIRST + 22)

// none for HUB_AREA_RIDE_TRAINING

#define HUB_UPGRADE_MARTS_GENERAL_STOCK                 (HUB_UPGRADE_FIRST + 23)
#define HUB_UPGRADE_MARTS_POKE_BALLS                    (HUB_UPGRADE_FIRST + 24)
#define HUB_UPGRADE_MARTS_POKE_BALLS_STOCK              (HUB_UPGRADE_FIRST + 25)
#define HUB_UPGRADE_MARTS_TMS                           (HUB_UPGRADE_FIRST + 26)
#define HUB_UPGRADE_MARTS_TMS_STOCK                     (HUB_UPGRADE_FIRST + 27)
#define HUB_UPGRADE_MARTS_TRAVELER_BATTLE_ENCHANCERS    (HUB_UPGRADE_FIRST + 28)
#define HUB_UPGRADE_MARTS_TRAVELER_HELD_ITEMS           (HUB_UPGRADE_FIRST + 29)

#define HUB_UPGRADE_DAY_CARE_CAPACITY0                  (HUB_UPGRADE_FIRST + 30)
#define HUB_UPGRADE_DAY_CARE_CAPACITY1                  (HUB_UPGRADE_FIRST + 31)
#define HUB_UPGRADE_DAY_CARE_BREEDER                    (HUB_UPGRADE_FIRST + 32)
#define HUB_UPGRADE_DAY_CARE_BREEDER_SEEN_DEX           (HUB_UPGRADE_FIRST + 33)
#define HUB_UPGRADE_DAY_CARE_BREEDER_LEGENDS            (HUB_UPGRADE_FIRST + 34) // reserved not actually planned to be used
#define HUB_UPGRADE_DAY_CARE_PHONE                      (HUB_UPGRADE_FIRST + 35)
#define HUB_UPGRADE_DAY_CARE_TEA_SHOP                   (HUB_UPGRADE_FIRST + 36)
#define HUB_UPGRADE_DAY_CARE_EXP_SHARE0                 (HUB_UPGRADE_FIRST + 37)
#define HUB_UPGRADE_DAY_CARE_EXP_SHARE1                 (HUB_UPGRADE_FIRST + 38)
#define HUB_UPGRADE_DAY_CARE_EXP_SHARE2                 (HUB_UPGRADE_FIRST + 39)

#define HUB_UPGRADE_MARKET_POKEBLOCK_BLENDERS           (HUB_UPGRADE_FIRST + 40)
#define HUB_UPGRADE_MARKET_BAKERY                       (HUB_UPGRADE_FIRST + 41)
#define HUB_UPGRADE_MARKET_TREAT_SHOP                   (HUB_UPGRADE_FIRST + 42)
#define HUB_UPGRADE_MARKET_TREAT_SHOP_STOCK             (HUB_UPGRADE_FIRST + 43)
#define HUB_UPGRADE_MARKET_BANK                         (HUB_UPGRADE_FIRST + 44)

#define HUB_UPGRADE_COUNT                               (HUB_UPGRADE_MARKET_BANK + 1)

// NOTE - Once the next update is out ALWAYS add the upgrades at the bottom of this list

#define HUB_UPGRADE_NONE 255

// Player Home Options
//
#define HOME_AREA_STYLE_OVERGROWN       0
#define HOME_AREA_STYLE_FLOWERS         1
#define HOME_AREA_STYLE_PLAIN           2
#define HOME_AREA_STYLE_COUNT           3

#define HOME_BUILDING_STYLE_CAVE        0
#define HOME_BUILDING_STYLE_TREES       1
#define HOME_BUILDING_STYLE_RED_BRICK   2
#define HOME_BUILDING_STYLE_WOODEN      3
#define HOME_BUILDING_STYLE_GYM         4
#define HOME_BUILDING_STYLE_COUNT       5

#define HOME_STYLE_HOUSE_EXTERIOR   0
#define HOME_STYLE_HOUSE_INTERIOR   1
#define HOME_STYLE_PATH             2
#define HOME_STYLE_COUNT            3

#define HOME_DECOR_CODE_NO_ROOM             255
#define HOME_DECOR_CODE_NOT_HERE            254
#define HOME_DECOR_CANNOT_REMOVE            253
#define HOME_DECOR_TOO_MANY_OBJECTS_NEAR    252
#define HOME_DECOR_TOO_MANY_OF_TYPE         251

#define HOME_DECOR_OUTSIDE_COUNT        160
#define HOME_DECOR_INSIDE_COUNT         32
#define HOME_DECOR_TOTAL_COUNT          (HOME_DECOR_OUTSIDE_COUNT + HOME_DECOR_INSIDE_COUNT)

#define HOME_DECOR_OUTSIDE_OFFSET       0
#define HOME_DECOR_INSIDE_OFFSET        (HOME_DECOR_OUTSIDE_COUNT)
#define HOME_DECOR_UPPER_PROP_OFFSET    (HOME_DECOR_OUTSIDE_COUNT + HOME_DECOR_INSIDE_COUNT)


// Misc
//
#define HUB_UPGRADE_MAX_REQUIREMENTS 2
#define MAX_HUB_UPGRADE_TREES_PER_AREA 8

#define HUB_AREA_CONN_SOUTH 0
#define HUB_AREA_CONN_NORTH 1
#define HUB_AREA_CONN_WEST  2
#define HUB_AREA_CONN_EAST  3
#define HUB_AREA_CONN_COUNT 4

#define HUB_AREA_CONN_TELEPORT 5

#define HUB_WANDER_MON_EXTERIOR_SLOT1   0
#define HUB_WANDER_MON_EXTERIOR_SLOT2   1
#define HUB_WANDER_MON_EXTERIOR_SLOT3   2
#define HUB_WANDER_MON_EXTERIOR_SLOT4   3
#define HUB_WANDER_MON_EXTERIOR_SLOT5   4
#define HUB_WANDER_MON_INTERIOR_SLOT1   5
#define HUB_WANDER_MON_INTERIOR_SLOT2   6
#define HUB_WANDER_MON_INTERIOR_SLOT3   7
#define HUB_WANDER_MON_INTERIOR_SLOT4   8
#define HUB_WANDER_MON_INTERIOR_SLOT5   9
#define HUB_WANDER_MON_COUNT            10

#define HUB_AREA_CONN_NONE 255